namespace IQIGame.Onigao.GamePlay
{
    /// <summary>
    /// 对应ConditionPropFetcherType.Environment
    /// </summary>
    public enum ConditionEnviromentPropType
    {
        None = 0,
        /// <summary>
        /// 小类型 指定关卡参数比较 CurValueParams：1：关卡参数id
        /// </summary>
        LevelParams = 1,
        /// <summary>
        /// 小类型 实体是否存在 CurValueParams：1：实体tag
        /// </summary>
        EntityExist = 2,
        /// <summary>
        /// 小类型 获取当前小时（0-23）
        /// </summary>
        DayHour = 3,
    }

    /// <summary>
    /// 对应ConditionPropFetcherType.CurPlayer
    /// </summary>
    public enum ConditionCurPlayerPropType
    {
        None = 0,
        /// <summary>
        /// 小类型 判断是否有实体跟随英雄 CurValueParams：1：实体tag。没有参数表示任意实体
        /// </summary>
        IsEntityFollowHero = 1,
        /// <summary>
        /// 指定任务是否正在进行
        /// </summary>
        IsQuestInProgress = 2,
        /// <summary>
        /// 指定任务是否完成
        /// </summary>
        IsQuestFinished = 3,
        /// <summary>
        /// 是否有指定buff CurValueParams：1.buff cid
        /// </summary>
        HaveBuff = 10,


        #region 系统数据

        Level = 101, // 玩家等级
        Energy = 102, // 玩家体力
        RegistrationTime = 103, //创角时间
        FunctionOpen = 104, // 已开启某功能

        ItemCountByCid = 105, // 检测Cid物品数量
        ItemCountByType = 106, // 检测{类型，子类型，品质，星级}物品数量

        QuestHasCommitted = 107, // 拥有已提交任务
        QuestHasAccepted = 108, // 拥有进行中的任务(不包含失败和进度完成的)
        QuestHasFinished = 109, // 拥有完成未提交的任务--可提交的任务

        HeroCountByCid = 111, // 检测{cid, 觉醒等级，等级，星级，缘轨}的英雄；可只配cid
        HeroCountByType = 112, // 检测{觉醒等级，等级，星级，缘轨}的英雄数量

        #endregion
    }

    /// <summary>
    /// 对应ConditionPropFetcherType.SpecificEntity
    /// </summary>
    public enum ConditionEntityPropType
    {
        None = 0,
        /// <summary>
        /// 小类型 英雄是否在视野中 CurValueParams：1：实体tag
        /// </summary>
        IsHeroInSight = 2,
        /// <summary>
        /// 小类型 实体是否是停止的电梯 CurValueParams：1：实体tag
        /// </summary>
        IsStoppedElevator = 3,
        /// <summary>
        /// 小类型 判断两个实体时间的距离 CurValueParams：1：实体tag1，2：实体tag2
        /// </summary>
        DistanceToOther = 4,
        /// <summary>
        /// 小类型 对比实体执行次数和指定值的大小，1：实体tag，2：执行次数索引。
        /// </summary>
        ExecCounts = 7,
        /// <summary>
        /// 小类型 实体是否激活阻挡，1：实体tag。
        /// </summary>
        IsObstacleActive = 8,
        /// <summary>
        /// 小类型 电梯当前楼层
        /// </summary>
        ElevatorCurFloor = 9,
        /// <summary>
        /// 是否有指定buff CurValueParams：1.buff cid
        /// </summary>
        HaveBuff = 10,
        /// <summary>
        /// 判断实体当前位置距离指定位置的距离
        /// </summary>
        DistanceToPosition = 11,
        /// <summary>
        /// 是否正在导航
        /// </summary>
        IsNavigating = 12,
        /// <summary>
        /// 电梯楼层是否激活
        /// </summary>
        IsElevatorFloorActive = 13,
    }
}